package lv.clientedisqueria.model.ingeniero;

import java.util.ArrayList;
import java.util.List;

import lv.clientedisqueria.model.DisqueriaTablaModelo;
import lv.clientedisqueria.model.Modelo;
import lv.mensajeriadisqueria.dto.IngenieroDto;
import lv.mensajeriadisqueria.idomain.IIngeniero;

public class IngenieroModel extends Modelo<IIngeniero>{
	
	private final IngenieroTablaModel ingenieroTablaModel;
	List<IIngeniero> ingenieros;
	private final static String PROPERTY_CHANGE_CAMBIAR_INGENIERO = "cambiarIngeniero";

	public IngenieroModel(){
		this.ingenieroTablaModel=new IngenieroTablaModel(this);
	}
	public IngenieroTablaModel getIngenieroTablaModel() {
		return ingenieroTablaModel;
	}

	@Override
	public List<IIngeniero> buscarTodos() {
		ingenieros=new ArrayList<IIngeniero>();
		IngenieroDto ingenieroDto=new IngenieroDto("alberto gomez");
		ingenieroDto.setIdIngeniero(1);
		this.ingenieros.add(ingenieroDto);
		IngenieroDto ingenieroDto2=new IngenieroDto("hernesto gonzalez");
		ingenieroDto2.setIdIngeniero(2);
		this.ingenieros.add(ingenieroDto2);
		IngenieroDto ingenieroDto3=new IngenieroDto("jose chamola");
		ingenieroDto3.setIdIngeniero(3);
		this.ingenieros.add(ingenieroDto3);
	return ingenieros;
	}

	@Override
	public String getPropertyChangeCambio() {
		return PROPERTY_CHANGE_CAMBIAR_INGENIERO;
	}

	public void insertar() {
		ingenieroTablaModel.adherirOModificar(new IngenieroDto());
		notificar(Modelo.INSERTAR);	}
	
	public void modificar() {
		notificar(Modelo.MODIFICAR);		
	}
	public void borrar() {
		// TODO aca hay que llamar al clienteserver para que haga el pedido
		ingenieroTablaModel.remover();
		notificar(Modelo.BORRAR);		
	}
	public void guardar(IIngeniero ingeniero) {
		// TODO Aca hay que llamar al server para guardar el objeto.
		ingenieroTablaModel.adherirOModificar(ingeniero);
		notificar(Modelo.GUARDADO);		
	}
	@Override
	public DisqueriaTablaModelo<IIngeniero> getTablaModel() {
		return ingenieroTablaModel;
	}

}
